Usage of Library Fragment In RAML
In this tutorial we will demonstrate the usage of library fragment in raml. Library is one of the Raml Fragments. Main advantage of the raml Library is that is can defined multiple types and that can be referred from RAML file
To create Raml Library, login in to Anypoint platform and click on design center and click on Create Fragments

Provide the name for new fragment

Update the RAML with below information
employee-library

#%RAML 1.0 Library
usage:
types:
EmployeePersonalInfo: !include employee-personalinfo-dataType.raml
EmployeeAddressInfo: !include employee-addressinfo-dataType.raml
Define the Individual DataType which is included as part of library
employee-addressinfo-dataType.raml
#%RAML 1.0 DataType
type: object
displayName: Address Details
properties:
LocalAddress:
type: object
required: true
displayName: "Local Address"
description: "Local Address"
properties:
Address_Line_1:
type: string
required: true
displayName: "Address_Line_1"
description: "Address_Line_1"
example: "Flat 101"
Address_Line_2:
type: string
required: true
displayName: "Address_Line_2"
description: "Address_Line_2"
example: "Block-c"
Area:
type: string
required: true
displayName: "Area"
description: "Area"
example: "MG ROAD"
City:
type: string
required: true
displayName: "City"
description: "City"
example: "Delhi"
Country:
type: string
required: true
displayName: "Country"
description: "Country"
example: "India"
PostalCode:
type: string
required: false
displayName: "PostalCode"
description: "PostalCode"
example: "A09172"
employee-personalinfo-dataType.raml
#%RAML 1.0 DataType
type: object
displayName: Personal Details
properties:
PersonalDetail:
type: object
required: true
displayName: "PersonalDetail"
description: "PersonalDetail"
properties:
FirstName:
type: string
required: true
displayName: "FirstName"
description: "FirstName"
example: "Mule"
LastName:
type: string
required: true
displayName: "LastName"
description: "LastName"
example: "Mulesy"
Email:
type: string
required: true
displayName: "Email"
description: "Email"
example: "[email protected]"
Phone:
type: string
required: true
displayName: "Phone"
description: "Phone"
example: "01-793274093"
BloodGroup:
type: string
required: true
displayName: "BloodGroup"
description: "BloodGroup"
example: "A+"
Once you create the Library as a fragment you can publish it on exchange to make it reusable across organization, else you can also use this inside individual raml specification in that case you can first create a RAML specification and add the file as a library or any other fragment
Create a RAML file In design Center to use the library created above, here we will use the library fragments which is published on exchange, please visit include fragments in raml for more details
See below how to include the library inside raml file, we use uses: to include the library and also refer this from exchange, in case of library it is not required to use !include to include the library

#%RAML 1.0
baseUri: https://www.mulesoft.com/resources/ #
title: employee
description: This API is to retrieve employeeid
version: v1
mediaType: [ application/json ]
protocols:
- HTTP
uses:
mylib: /exchange_modules/bc3a8427-d13f-46b4-a2e1-e94c83fd72e0/employee-library/1.0.1/employee-library.raml
/employeepersonalinfo/{empId}:
get:
displayName: Retrieve employee personal details
description: Retrieve employee personal details by empid
responses:
200:
description: Success repsonse of employee personal details
body:
application/json:
type: mylib.EmployeePersonalInfo
/employeeaddressinfo/{empId}:
get:
displayName: Retrieve employee address details
description: Retrieve employee address details by empid
responses:
200:
description: Success repsonse of employee address details
body:
application/json:
type: mylib.EmployeeAddressInfo
Sample application: Employee raml specification
Good Example for beginners to practice. Please Provide number of POC for Best Practice
awesome i joined a starup named ensocode as developer and able to comple my task thnak you